trait Aminal {
    fn moving(&self, x: i32, y: i32) {
        println!("1");
    }
}
trait Human {
    fn moving(&self, x: i32, y: i32) {
        println!("2");
    }
}

struct Worker {}
impl Aminal for Worker {}
impl Human for Worker {}

fn main() {
    let w1 = Worker {};
    <Worker as Aminal>::moving(&w1, 10, 20);
    <Worker as Human>::moving(&w1, 10, 20);

    let w2: Box<Worker> = Box::new(Worker {});
    Human::moving(&*w2, 10, 20);
}